package com.example.evanproject.config;

import com.example.evanproject.util.DatesUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.io.*;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.file.Files;
import java.util.UUID;

@Component
public class UpdateImg {

  public static String updateimg(MultipartFile file){
        //获取上传文件的名字
        String fileName = file.getOriginalFilename();
        //获取上传文件的后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        //生成文件名称UUID
      String name= DatesUtils.getTime2();
        //生成新的文件名称
        String fileNewName = name + suffixName;
        //上传图片的存放目录（因为需要存放在两个项目中 所以需要两个路径 一般需要一个即可）
        File fileDirectory = new File(Constant.FILE_UPLOAD_DIR);
      System.out.println("存放的路径");
      System.out.println(fileDirectory);
        //上传图片的存放路径(前台)（因为需要存放在两个项目中 所以需要两个路径 一般需要一个即可）
        File destFile = new File(Constant.FILE_UPLOAD_DIR + fileNewName);

      System.out.println(destFile);

      System.out.println("-------------------------------");
        //判断目录是否存在
        if (!fileDirectory.exists()) {
            if (!fileDirectory.mkdir()) {//目录创建失败
                throw new RuntimeException();
            }
        }

        try {
            file.transferTo(destFile);
//            file.transferTo(destFile2);
           //图片的复制（因为两个项目需要图片）
            // 创建目标文件夹
            File destFolder = new File(Constant.FILE_UPLOAD_DIR2);
            //destFile.toPath()源文件夹的位置加文件名组的那个文件信息
            Files.copy(destFile.toPath(), new File(destFolder, destFile.getName()).toPath());


        } catch (IOException e) {
            e.printStackTrace();
        }

        return fileNewName;
    }

    public static String updateimg2(MultipartFile file){

        //获取上传文件的名字
        String fileName = file.getOriginalFilename();
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        //生成文件名称UUID
       String name= DatesUtils.getTime2();
        //生成新的文件名称
        String fileNewName = name + suffixName;
        //上传图片的存放目录（因为需要存放在两个项目中 所以需要两个路径 一般需要一个即可）
        File fileDirectory = new File(Constant.FILE_UPLOAD_DIR);

      System.out.println("存放的路径");
      System.out.println(fileDirectory);
        //上传图片的存放路径(前台)（因为需要存放在两个项目中 所以需要两个路径 一般需要一个即可）
        File destFile = new File(Constant.FILE_UPLOAD_DIR + fileNewName);

      System.out.println(destFile);

      System.out.println("-------------------------------");
        //判断目录是否存在
        if (!fileDirectory.exists()) {
            if (!fileDirectory.mkdir()) {//目录创建失败
                throw new RuntimeException();
            }
        }

        try {
            file.transferTo(destFile);
//            file.transferTo(destFile2);
           //图片的复制（因为两个项目需要图片）
            // 创建目标文件夹
            File destFolder = new File(Constant.FILE_UPLOAD_DIR2);
            //destFile.toPath()源文件夹的位置加文件名组的那个文件信息
            Files.copy(destFile.toPath(), new File(destFolder, destFile.getName()).toPath());


        } catch (IOException e) {
            e.printStackTrace();
        }

        return Constant.FILE_UPLOAD_DIR + fileNewName;
    }



}
